home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_pep247.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  2KB  |  60 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import md5
  5. import sha
  6. import hmac
  7.  
  8. def check_hash_module(module, key = None):
  9.     if not hasattr(module, 'digest_size'):
  10.         raise AssertionError, 'Must have digest_size'
  11.     if not module.digest_size is None and module.digest_size > 0:
  12.         raise AssertionError, 'digest_size must be None or positive'
  13.     if key is not None:
  14.         obj1 = module.new(key)
  15.         obj2 = module.new(key, 'string')
  16.         h1 = module.new(key, 'string').digest()
  17.         obj3 = module.new(key)
  18.         obj3.update('string')
  19.         h2 = obj3.digest()
  20.         if not h1 == h2:
  21.             raise AssertionError, 'Hashes must match'
  22.     else:
  23.         obj1 = module.new()
  24.         obj2 = module.new('string')
  25.         h1 = module.new('string').digest()
  26.         obj3 = module.new()
  27.         obj3.update('string')
  28.         h2 = obj3.digest()
  29.         if not h1 == h2:
  30.             raise AssertionError, 'Hashes must match'
  31.     if not hasattr(obj1, 'digest_size'):
  32.         raise AssertionError, 'Objects must have digest_size attr'
  33.     if module.digest_size is not None:
  34.         if not obj1.digest_size == module.digest_size:
  35.             raise AssertionError, 'digest_size must match'
  36.     
  37.     if not obj1.digest_size == len(h1):
  38.         raise AssertionError, 'digest_size must match actual size'
  39.     obj1.update('string')
  40.     obj_copy = obj1.copy()
  41.     if not obj1.digest() == obj_copy.digest():
  42.         raise AssertionError, 'Copied objects must match'
  43.     if not obj1.hexdigest() == obj_copy.hexdigest():
  44.         raise AssertionError, 'Copied objects must match'
  45.     digest = obj1.digest()
  46.     hexdigest = obj1.hexdigest()
  47.     hd2 = ''
  48.     for byte in digest:
  49.         hd2 += '%02x' % ord(byte)
  50.     
  51.     if not hd2 == hexdigest:
  52.         raise AssertionError, "hexdigest doesn't appear correct"
  53.     print 'Module', module.__name__, 'seems to comply with PEP 247'
  54.  
  55. if __name__ == '__main__':
  56.     check_hash_module(md5)
  57.     check_hash_module(sha)
  58.     check_hash_module(hmac, key = 'abc')
  59.  
  60.